import unittest
from read.readCsv import ReadCsv
from dev.tool import StringTool


r = ReadCsv()
#[['abc', 'xts', 'Wc'], ['hello world', 'HEllo bug', 'ni hao'], ['abc', 'c', 'cctv', 't', 'cctvwc', 'a'], ['公孙康', '公孙', '张三', '张', '李四', '李']]
datas = r.readCsv("homework.csv")
print(datas)

tool = StringTool()


class TestStringTool(unittest.TestCase):

    def setUp(self) -> None:
        print("setup")

    def tearDown(self) -> None:
        print("teardown")

    def test_upper(self):
        #['abc', 'xts', 'Wc']
        data = datas[0]
        for i in data:
            # 正确的结果：可以通过代码，也可以自己写道csv
            result = i.upper()
            # 通过工具类转的结果
            testData = tool.strConvert(i)
            # 断言失败，说明工具类有毛病
            self.assertEqual(result,testData)


    def test_title(self):
        # ['hello world', 'HEllo bug', 'ni hao'],
        data = datas[1]
        for i in data:
            # 正确的结果：可以通过代码，也可以自己写道csv
            result= i.title()
            testData = tool.strConvert2(i)

            self.assertEqual(result,testData)

    def test_index(self):
        #['abc', 'c', 'cctv', 't', 'cctvwc', 'a']
        data = datas[2]
        # 因为两个数据是一组，奇数的index是第二个参数
        # 6
        le = len(data)
        i = 0
        while i <le:
            str1 = data[i]
            str2 = data[i+1]

            #最后i需要+2
            i = i+2
            # 正确的结果：可以通过代码，也可以自己写道csv
            index = str1.find(str2)
            #断言，要么pass，要么failed，不能有error
            #try/except：快捷键 ctrl+alt+t
            testIndex = -1
            try:
                testIndex = tool.strConvert3(str1,str2)
            except:
                #抓到异常
                self.assertEqual(index,None)
            else:
                self.assertEqual(index, testIndex)


    def test_name(self):
        # ['公孙康', '公孙', '张三', '张', '李四', '李']
        data = datas[3]
        le = len(data)
        i = 0
        while i < le:
            str1 = data[i]
            #正确的结果
            str2 = data[i + 1]
            testData = tool.strConvert4(str1)
            i+=2
            self.assertEqual(str2,testData)


